package com.xinxin.o2o.service;

import com.xinxin.o2o.dto.ProductExecution;
import com.xinxin.o2o.model.Product;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author 史鑫鑫
 * @date 2019-08-20 22:49
 */
@Service
public interface ProductService {
    /**
     * 获取产品列表
     *
     * @param productCondition 查询条件
     * @param pageIndex        页码
     * @param pageSize         页面大小
     * @return 查询结果
     */
    ProductExecution getProductList(Product productCondition, int pageIndex, int pageSize);

    /**
     * 根据产品id获取产品信息
     *
     * @param productId 产品id
     * @return 产品信息
     */
    Product getProductById(long productId);

    /**
     * 添加商品
     *
     * @param product     商品信息
     * @param thumbnail   缩略图
     * @param productImgs 详情图
     * @return 插入结果
     * @throws RuntimeException 异常
     */
    ProductExecution addProduct(Product product, MultipartFile thumbnail, List<MultipartFile> productImgs)
            throws RuntimeException;

    /**
     * 修改商品信息
     *
     * @param product     商品信息
     * @param thumbnail   缩略图
     * @param productImgs 详情图
     * @return 插入结果
     * @throws RuntimeException 异常
     */
    ProductExecution modifyProduct(Product product, MultipartFile thumbnail, List<MultipartFile> productImgs)
            throws RuntimeException;
}
